package com.cens.common.exception;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 错误码和错误信息定义类
 * 1. 错误码定义规则为5为数字
 * 2. 前两位表示业务场景，最后三位表示错误码。例如：100001。
 * 10:通用
 * 001:系统未知异常
 * 002：短信
 * 3. 维护错误码后需要维护错误描述，将他们定义为枚举形式
 */
@Getter
@AllArgsConstructor
public enum BaseCodeEnum {

    /**
     * 未知异常
     */
    UNKNOWN_EXCEPTION(10000, "未知异常"),
    /**
     * 参数校验失败
     */
    VALID_EXCEPTION(10001, "参数校验失败"),
    /**
     * 商品上架异常
     */
    COMMODITY_UP_EXCEPTION(11000, "商品上架异常"),
    /**
     * 验证码获取频率太高，请稍后再试
     */
    VALID_SMS_CODE(10002, "验证码获取频率太高，请稍后再试"),
    /**
     * 用户已存在
     */
    USER_EXIST_EXCEPTION(15001, "用户已存在"),
    /**
     * 手机号已存在
     */
    PHONE_EXIST_EXCEPTION(15002, "手机号已存在"),
    /**
     * 账号或密码错误，登录失败
     */
    LOGIN_FAIL_EXCEPTION(15002, "账号或密码错误！"),
    ;

    private int code;
    private String msg;
}
